package cn.simple.model.base;

import cn.simple.annotation.Note;
import cn.simple.strategy.DamageStrategy;
import cn.simple.strategy.SkillStrategy;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;

/**
 * 技能基类
 */
@Getter
@Setter
@NoArgsConstructor
@AllArgsConstructor
public abstract class Skill {

    @Note("技能名称")
    private String skillName;

    @Note("基础血量伤害")
    private Integer baseHpDamage = 0;

    @Note("基础魔法值伤害")
    private Integer baseMpDamage = 0;

    @Note("消耗血量")
    private Integer consumeHp = 0;

    @Note("消耗蓝量")
    private Integer consumeMp = 0;

    @Note("备注")
    private String remark;

    @Note("技能策略，即当前技能是如何执行")
    private SkillStrategy skillStrategy;

    @Note("伤害策略，技能释放后，对应伤害的计算策略")
    private DamageStrategy damageStrategy;

}
